// 图表模板定义
const chartTemplates = {
  // 1. 流程图
  flow: {
    title: '流程图',
    code: `graph TD
    A[开始] --> B[输入数据]
    B --> C{数据有效?}
    C -->|是| D[处理数据]
    C -->|否| E[显示错误]
    D --> F[生成结果]
    F --> G[结束]
    E --> G`
  },
  
  // 2. 序列图
  sequence: {
    title: '序列图',
    code: `sequenceDiagram
    participant 客户端
    participant 服务器
    participant 数据库
    
    客户端->>服务器: 请求数据
    服务器->>数据库: 查询信息
    数据库-->>服务器: 返回结果
    服务器-->>客户端: 响应数据`
  },
  
  // 3. 类图
  class: {
    title: '类图',
    code: `classDiagram
    class 动物 {
        +String 名称
        +void 进食()
        +void 移动()
    }
    
    class 猫 {
        +void 抓老鼠()
    }
    
    class 狗 {
        +void 看家()
    }
    
    动物 <|-- 猫
    动物 <|-- 狗`
  },
  
  // 4. 甘特图
  gantt: {
    title: '甘特图',
    code: `gantt
    title 项目进度表
    dateFormat  YYYY-MM-DD
    
    section 需求阶段
    需求分析       :done, a1, 2024-01-01, 2024-01-05
    需求确认       :done, a2, after a1, 2d
    
    section 开发阶段
    系统设计       :done, b1, after a2, 3d
    前端开发       :active, b2, after b1, 5d
    后端开发       :active, b3, after b1, 7d
    
    section 测试阶段
    功能测试       :c1, after b2, 3d
    性能测试       :c2, after b3, 2d
    
    section 部署阶段
    上线部署       :d1, after c1, 1d
    监控运行       :d2, after c2, 2d`
  },
  
  // 5. 饼图
  pie: {
    title: '饼图',
    code: `pie
    title 项目资源分配
    "开发团队" : 45
    "设计团队" : 25
    "测试团队" : 20
    "运维团队" : 10`
  },
  
  // 6. 状态图
  state: {
    title: '状态图',
    code: `stateDiagram-v2
    [*] --> 待机
    待机 --> 运行 : 启动
    运行 --> 暂停 : 暂停命令
    暂停 --> 运行 : 继续命令
    运行 --> 错误 : 异常
    错误 --> 待机 : 重置
    运行 --> [*] : 关闭
    暂停 --> [*] : 关闭
    错误 --> [*] : 强制关闭`
  },
  
  // 7. ER图
  er: {
    title: 'ER图',
    code: `erDiagram
    用户 ||--o{ 订单 : 下订单
    用户 { 
        string 用户ID
        string 用户名
        string 邮箱
    }
    订单 ||--o{ 订单项 : 包含
    订单 { 
        string 订单ID
        date 创建时间
        decimal 总金额
    }
    订单项 }o--|| 产品 : 关联
    订单项 { 
        string 订单项ID
        int 数量
        decimal 单价
    }
    产品 { 
        string 产品ID
        string 产品名称
        decimal 价格
    }`
  },
  
  // 8. 用户旅程
  journey: {
    title: '用户旅程图',
    code: `journey
    title 用户注册流程
    section 初始阶段
      访问注册页面: 5: 访问
      填写表单: 8: 填写
      上传头像: 6: 上传
    section 系统处理
      验证信息: 7: 验证
      发送验证码: 5: 发送
      创建账号: 6: 创建
    section 完成阶段
      验证邮箱: 4: 验证
      设置密码: 7: 设置
      完成注册: 9: 完成
      登录系统: 6: 登录`
  },
  
  // 9. 需求图
  req: {
    title: '需求图',
    code: `requirementDiagram
    requirement "高可用性" {
        id: 1
        text: "系统必须保持高可用性"
        risk: high
        verifymethod: test
    }
    element "负载均衡器" {
        type: system
    }
    "负载均衡器" - SATISFIES -> "高可用性"`
  },
  
  // 10. Git图
  git: {
    title: 'Git图',
    code: `gitGraph
    commit
    commit
    branch develop
    checkout develop
    commit
    commit
    checkout main
    merge develop
    branch feature-A
    checkout feature-A
    commit
    commit
    checkout develop
    merge feature-A
    commit
    checkout main
    merge develop
    commit`
  },
  
  // 11. 思维导图
  mindmap: {
    title: '思维导图',
    code: `mindmap
  root((项目管理))
    需求分析
      需求收集
      需求文档
      需求评审
    设计阶段
      系统设计
        架构设计
        数据库设计
      UI设计
        原型设计
        界面设计
    开发阶段
      前端开发
      后端开发
    测试阶段
      单元测试
      集成测试
    部署上线
      环境配置
      部署策略`
  },
  
  // 12. 时间线
  timeline: {
    title: '时间线',
    code: `timeline
    title 项目开发时间线
    section 需求阶段
    项目启动       : 2024-01-01 - 2024-01-03
    需求收集       : 2024-01-04 - 2024-01-10
    需求分析       : 2024-01-11 - 2024-01-15
    section 设计阶段
    架构设计       : 2024-01-21 - 2024-01-25
    UI/UX设计      : 2024-01-26 - 2024-02-05
    section 开发阶段
    前端开发       : 2024-02-09 - 2024-03-15
    后端开发       : 2024-02-09 - 2024-03-10
    section 测试阶段
    功能测试       : 2024-04-06 - 2024-04-15
    上线部署       : 2024-05-11 - 2024-05-12`
  },
  
  // 13. C4图 - 系统架构图
  c4: {
    title: 'C4架构图',
    code: `C4Context
    title 系统架构图
    Person(用户, "用户", "使用系统的终端用户")
    System(webapp, "Web应用", "提供用户界面和业务逻辑")
    SystemDb(db, "数据库", "存储系统数据")
    System(auth, "认证服务", "处理用户认证和授权")

    Rel(用户, webapp, "使用")
    Rel(webapp, db, "读写数据")
    Rel(webapp, auth, "验证身份")
    Rel(用户, auth, "登录")`
  },
  
  // 14. 四象限图
  quadrant: {
    title: '四象限图',
    code: `graph TD
    subgraph "重要且紧急"
      A[处理危机]
      B[解决问题]
    end
    
    subgraph "重要不紧急"
      C[规划项目]
      D[能力提升]
    end
    
    subgraph "紧急不重要"
      E[会议]
      F[邮件回复]
    end
    
    subgraph "不紧急不重要"
      G[社交网络]
      H[琐事]
    end
    
    %% 连接四象限
    A --> C
    B --> D
    E --> G
    F --> H
    
    classDef quadrant1 fill:#ff6b6b,stroke:#333,color:white;
    classDef quadrant2 fill:#4ecdc4,stroke:#333,color:white;
    classDef quadrant3 fill:#ffe66d,stroke:#333,color:black;
    classDef quadrant4 fill:#a8e6cf,stroke:#333,color:black;
    
    class A,B quadrant1;
    class C,D quadrant2;
    class E,F quadrant3;
    class G,H quadrant4;`
  }
};

// 初始化函数
function initializeChartTemplates() {
  console.log('图表模板初始化完成');
  return chartTemplates;
}

// 暴露到全局变量
window.chartTemplates = chartTemplates;
window.initializeChartTemplates = initializeChartTemplates;